﻿using PoemGame.Domain.GameAggregate;
using PoemGame.Domain.PlayerAggregate;
using PoemGame.Domain.Seedwork;
using System.Numerics;

namespace PoemGame.ApplicationService
{
    /// <summary>
    /// 游戏进行服务
    /// 游戏进行涉及到轮次，轮流作答还是抢答，服务封装游戏过程，不同的作答顺序带来的变化在具体的子类中实现。
    /// </summary>
    public interface IGamePlayService
    {
        /// <summary>
        /// 玩家进行游戏
        /// </summary>
        /// <param name="player"></param>
        /// <param name="game"></param>
        /// <param name="answer"></param>
        /// <returns></returns>
        Task<GamePlayResult> GamePlay(Player player, Game game, string answer);
        /// <summary>
        /// 设置当前回答的玩家，抢答时显式调用
        /// </summary>
        /// <param name="player"></param>
        /// <param name="game"></param>
        /// <returns></returns>
        Task<GeneralResult> SetPlayer(Player player, Game game);

    }
}